﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Data.Objects;

using System.Text; 

/// <summary>
/// Summary description for BLNhaSanXuat
/// </summary>
/// 
namespace EDiamondModel
{
    public partial class BLNhaSanXuat
    {
        private static EDiamondEntities1 db = new EDiamondEntities1();

        #region Các phương thức đọc
        public static NhaSanXuat DocTheoID(int id)
        {
            NhaSanXuat entity = db.NhaSanXuats.FirstOrDefault(p => p.MaNhaSanXuat == id);
            return entity;
        }
        public static IList<NhaSanXuat> Doc()
        {
            return db.NhaSanXuats.ToList();
        }
        public static IList<NhaSanXuat> Doc(Func<NhaSanXuat, bool> dieukien)
        {
            return db.NhaSanXuats.Where(dieukien).ToList();
        }
        #endregion
        #region Các phương thức cập nhật
        public static NhaSanXuat TaoDong()
        {
            return db.NhaSanXuats.CreateObject();
        }

        public static void Them(NhaSanXuat entity, bool ghi = false)
        {
            db.AddToNhaSanXuats(entity);
            if (ghi) db.SaveChanges();
        }
        public static void Ghi()
        {
            db.SaveChanges();
        }

        public static void Xoa(int id)
        {
            try
            {
                NhaSanXuat entity = db.NhaSanXuats.Include("LoaiSanPhams").SingleOrDefault(p => p.MaNhaSanXuat == id);
                if (entity.LoaiSanPhams.Count > 0)
                {
                    throw new Exception("Không hủy được vì đã có thông tin phụ thuộc ở loại sản phẩm");
                }
                db.NhaSanXuats.DeleteObject(entity);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
        #endregion
        #region Các phương thức kiểm tra hợp lệ

        public static void KiemtraDuLieu(NhaSanXuat entity)
        {
            StringBuilder errMessage = new StringBuilder();
            if (string.IsNullOrEmpty(entity.TenNhaSanXuat))
            {
                errMessage.AppendLine("Tên nhà sản xuất không được rỗng");
            }
            //
            // ....
            if (!string.IsNullOrEmpty(errMessage.ToString()))
            {
                throw new Exception(errMessage.ToString());
            }

        }
        #endregion

        public BLNhaSanXuat()
        {
            //
            // TODO: Add constructor logic here
            //
        }
    }
}